#ifndef MYMESH_H
#define MYMESH_H
#include <QVector3D>
#include <vector>
#include <QOpenGLShaderProgram>
#include <QOpenGLExtraFunctions>
#include <QOpenGLTexture>
#include <assimp.h>
#include "data.h"

#define MAX_BONE_INFLUENCE 4

using namespace std;

struct Vertex {
    // position
     QVector3D Position;
     // normal
     QVector3D Normal;
     // texCoords
     QVector2D TexCoords;
//     // tangent
//     QVector3D Tangent;
//     // bitangent
//     QVector3D Bitangent;
//     //bone indexes which will influence this vertex
//     int m_BoneIDs[MAX_BONE_INFLUENCE];
//     //weights from each bone
//     float m_Weights[MAX_BONE_INFLUENCE];
};

struct Texture {
    QString type;
    QString path;
};


class MyMesh: protected QOpenGLExtraFunctions
{
public:
    vector<Vertex> vertices;
    vector<unsigned int> indices;
    vector<Texture> textures;

    MyMesh(vector<Vertex> vertices, vector<unsigned int> indices, vector<Texture> textures);

};

#endif // MYMESH_H
